我将在Windows窗体上的标签中输入许多字符串(我不会使用这些字符串).字符串将类似于以下内容:
"快速的棕色狐狸在猎犬身上跑了过来"
我想在标签中显示字符串,但是将TextBox精确地覆盖在缺少字母的位置.
将有300多个字符串,我正在寻找最简单,最优雅的方法.
如何为每个字符串准确地重新定位文本框?
编辑: MaskTextBox将无法正常工作,因为我需要多行支持.
我做了一个关于标点符号和正则表达式的问题,但这令人困惑.
我有这样的文字:
String text = "wor.d1, :word2. wo,rd3? word4!";
Run Code Online (Sandbox Code Playgroud)
我这样做:
String parts[] = text.split(" ");
Run Code Online (Sandbox Code Playgroud)
我有这个:
wor.d1, | :word2. | wor,d3? | word4!;
Run Code Online (Sandbox Code Playgroud)
有这个我需要做什么?(将符号保留在边界处,但仅限于我指定的:.,!?:
,而不是全部).
wor,d1 | , | : | word2 | . | wor,d3 | ? | word4 | !
Run Code Online (Sandbox Code Playgroud)
我用这些正则表达式获得了一些好的结果,但它在一个单词开头的标点符号的所有分割之前给出了一个空的char.
有一种方法可以在一开始没有这个空的char?
这个正则表达式是好的还是有更简单的方法?
public static final String PUNCTUATION_SEPARATOR =
"("
+ "("
+ "(?=^[\"'!?.,;:(){}\\[\\]]+)"
+ "|"
+ "(?<=^[\"'!?.,;:(){}\\[\\]]+)"
+ ")"
+ "|"
+ "("
+ "(?=[\"'!?.,;:(){}\\[\\]]+($|\n))"
+ "|"
+ "(?<=[\"'!?.,;:(){}\\[\\]]+($|\n))"
+ ")"
+ ")";
Run Code Online (Sandbox Code Playgroud) 我正在尝试重新创建不和谐的表情符号解析消息的方式。
例如,我希望消息Hello, :smile::hearth: world!
拆分为以下数组:
["Hello, ", ":smile:", ":hearth:", " world!"]
Run Code Online (Sandbox Code Playgroud)
我已经尝试使用以下代码拆分数组:
Arrays.toString(message.split("(:[A-Za-z]+:)"))
Run Code Online (Sandbox Code Playgroud)
但是,split方法会删除找到的定界符。因此最终结果如下所示:
["Hello", , , " world!"]
Run Code Online (Sandbox Code Playgroud) 在 Dart 中,我想使用正则表达式拆分字符串,并在结果列表中包含匹配的分隔符。因此,使用分隔符.
,我希望将字符串123.456.789
拆分为[ 123, ., 456, ., 789 ]
.
在某些语言中,如 C#、JavaScript、Python 和 Perl,根据/sf/answers/1096790341/,这可以通过简单地在捕获括号中包含分隔符来完成。该行为似乎记录在https://ecma-international.org/ecma-262/9.0/#sec-regexp.prototype-@@split。
但是,这在 Dart 中似乎不起作用:
print("123.456.789".split(new RegExp(r"(\.)")));
产生与没有括号完全相同的东西。有没有办法split()
在 Dart 中像这样工作?否则我想它必须是一个allMatches()
实现。
编辑:放入((?<=\.)|(?=\.))
正则表达式显然可以完成单个分隔符的工作,具有后视和前瞻。我实际上会有一堆分隔符,我不确定这种方法的效率。有人可以建议是否可以吗?易读性肯定会降低:允许分隔符.
and ;
,是否需要
((?<=\.)|(?=\.)|(?<=;)(?=;))
or
((?<=\.|;)|(?=\.|;)
。测试
print("123.456.789;abc;.xyz.;ABC".split(new RegExp(r"((?<=\.|;)|(?=\.|;))")));
表明两者都有效。
我知道你看到很多像我这样的问题,但我希望我的有点不同.我正在翻译,我想将文本分成句子,但是当我编写这段代码时:
public static string[] GetSentences(string Text)
{
if (Text.Contains(". ") || Text.Contains("? ") || Text.Contains("! "))
return Text.Split(new string[] { ". ", "? ", "! " }, StringSplitOptions.RemoveEmptyEntries);
else
return new string[0];
}
Run Code Online (Sandbox Code Playgroud)
它删除了".","?","!".我想保留他们我怎么能这样做.
注意:我想用"."点和空格分隔,"?"问号和空格......