字符串S
如下所示:
S = "HOLY CROWS \n This looks scary. \n Horror score rises. \n MAYBE I should ask \n STACKOVERFLOW \n They would know."
期望的输出:
“我应该问STACKOVERFLOW他们会知道。”
基本上:
查找包含以下条件的单个大写单词的每个匹配项:
这是我到目前为止所拥有的:
\w\n\w[A-Z]+\n.*?\w
但这并没有征服这个词之前和之后的完整一行。 它也不符合第二个要求。
当前输出:
“k STACKOVERFLOW T”
答案 0 :(得分:1)
您可以使用以下正则表达式:
(?:^|\r?\n)(.*?)\r?\n([A-Z]+)r?\n(.*?)(?:\r?\n|$)
并获得以下群组:
$1 $2 $3
这将匹配任何大写单词,直接在前面和后面跟一个换行符。第一个换行符之前和最后一个换行符之后的所有内容都将在组内。
(?:)
匹配未编号的群组(例如$1
,$2
).*?
懒惰地匹配0个或多个字符(非贪婪)\r?\n
匹配Windows \r\n
和UNIX \n
linebreak ^
和$
字符串的开头和结尾以下是live example 。