我有一个输入字符串像:
-a var1=Bat"m/an -b var2=" -a="lol " -c var3=" M^a%g-i=c "
拆分后,我应该得到:
输出
- -a
- var1=Bat"m/an
- -b
- var2=" -a="lol "
- -c
- var3=" M^a%g-i=c "
规则:
-(char)(至少一个空格)变量=value
Bat"m/an
"-a="lol"
或"M^a%g-i=c"
我写了正则表达式,但引号内的引号搞砸了:
(?:"[^"]*"|\S)+
此外,我还尝试在=“
上解析字符或拆分,但我面临着歧义,因为它们也可能在引号内。
您可以尝试以下内容:
(-[a-z]|[^\s][^\s]*="?[^"]*"?[^\s]*)
所有参数及其值将作为一个单独的组捕获
解释:
Capturing Group (-[a-z]|[^\s][^\s]*="?[^"]*"?[^\s]*)
1st Alternative -[a-z]
2nd Alternative [^\s][^\s]*="?[^"]*"?[^\s]*
[^\s] - A character which should not be a space
[^\s]* - Matches all non space characters
= checks for equal to as mandatory
= matches the character = literally (case sensitive)
"? checks if " symbol is there
[^"]* checks for all symbols that are not as "
"? Again check for " as option
[^\s]* Finally again check for all non space characters
这里是演示
希望有帮助:)。
您可以使用这个正则表达式来匹配前瞻断言:
-?[a-z_]\w*(?:=".*?"(?=\h+(?:-[a-z](?=\h|$)|[a-z]\w*=)|$)|\S+)?
正则表达式演示
RegEx解释:
-
:以可选连字符开头
我想用空格和特殊字符(如果有的话)来分割字符串。例如:用于表示移动交换中心(信号强度)。 目前我正在使用正则表达式来拆分字符串,但我无法同时实现空格和特殊字符的拆分。 更新代码:
我目前正在尝试将字符串拼接成多行字符串。正则表达式应选择前面有 13 个字符的空格。 问题在于,13个字符的计数在前一个选定的空白之后不会重置。因此,在前13个字符之后,正则表达式选择每个空白。 我使用以下正则表达式,其 13 个字符: (结尾有一个空格) 您可以在这里测试正则表达式和以下代码: 此代码的输出如下所示: 这是个测试。 应用 应在 13 个字符后的空格上以子字符串分隔此字符串 但应该
问题内容: 我正在寻找ElasticSearch嵌套查询,它将使用C#在字符串上提供完全匹配的字符串。 例如-我想搜索“ XYZ Company Solutions”之类的词。我尝试使用querystring查询,但是无论搜索结果如何,它都会为我提供所有记录。我也阅读了帖子,发现我们必须为该字段添加一些映射。我在现场尝试了“ Not_Analyzed”分析仪,但仍然无法正常工作。 这是我的C#代码
我想把一个有空格或任何特殊字符的句子分成一个单词数组,空格或特殊字符也是数组的一个元素。 句子像: 应拆分为字符串数组: 请建议使用任何正则表达式或逻辑来使用java进行拆分。 我的问题漏了一件事。我还需要拆分数字字符。。但是使用split(“\b”)并不能拆分具有以下内容的字符串: abc12def 成
问题内容: 我需要从字符串中删除所有特殊字符,标点符号和空格,以便只有字母和数字。 问题答案: 这可以不用正则表达式来完成: 您可以使用: 如果您坚持使用正则表达式,则其他解决方案也可以。但是请注意,如果可以在不使用正则表达式的情况下完成此操作,那么这是最好的解决方法。
问题内容: 我对Regex的经验不足,但是我已经阅读了很多。假设有一个字符串,我想要一个列表,该列表的字符串分为两个部分。我的方法是让一个小组检查是否是数字,然后检查该小组是否重复。像这样 我认为基本上可以检查“ digit”或“ digit +”是否相同。我认为这可以满足我的要求。 问题答案: 用途: