我目前正在创建一个正则表达式来分割出所有匹配以下格式的字符串:&[text(text - text text) !text]
。这里的文本可以是任何字符真的。间距很重要。文本将如图所示列出。java正则表达式匹配和[文本(文本 - 文本文本)!文本]
我曾尝试以下正则表达式,但我似乎无法得到它的工作:
&\\[([^\\]]*)\\]
任何帮助将不胜感激。
我目前正在创建一个正则表达式来分割出所有匹配以下格式的字符串:&[text(text - text text) !text]
。这里的文本可以是任何字符真的。间距很重要。文本将如图所示列出。java正则表达式匹配和[文本(文本 - 文本文本)!文本]
我曾尝试以下正则表达式,但我似乎无法得到它的工作:
&\\[([^\\]]*)\\]
任何帮助将不胜感激。
将text
替换为\w+
以捕获一个或多个单词字符。 否则假设一切是文字,下面的正则表达式应该工作:
&\[\w+\(\w+ - \w+ \w+\) !\w+\]
你也可以使用[a-zA-Z]
代替\w
如果您想。它有时更容易理解,因为它明确描述了要匹配的字符,a-z
和A-Z
(含)。
&\[[a-zA-Z]+\([a-zA-Z]+ - [a-zA-Z]+ [a-zA-Z]+\) ![a-zA-Z]+\]
而对于只有一个字符,删除+
&\[\w\(\w - \w \w\) !\w\]
&\[[a-zA-Z]\([a-zA-Z] - [a-zA-Z] [a-zA-Z]\) ![a-zA-Z]\]
PS - 我不记得是否-
,&
,或!
被coutned为正则表达式的符号和如果他们是你可以通过使用\-
,01使他们成为文字或\!
。
P.P.S - 在java中你必须转义\
所以\w
变成\\w
在一个字符串中。
如果你想提取text
成组后与他们合作:
&\\[(\\w+)\\((\w+)\\s\\-\\s(\\w+)\\s(\\w+)\\)\\s!(\\w+)]
要提取`text`与该模式分割功能
? –
不,我正在尝试替换匹配该模式的文本。 –
所以下面的答案应该为你工作 –