Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 正则表达式匹配以感叹号开头的整行_Regex_Ruby - Fatal编程技术网

Regex 正则表达式匹配以感叹号开头的整行

Regex 正则表达式匹配以感叹号开头的整行,regex,ruby,Regex,Ruby,我正在尝试匹配从开始的整行文本 用正则表达式 我制作了这样的东西:/(!\w+\s+\s+)/ig,非常接近,但只有两个单词。我想把单词和新行匹配起来。我也看到在句子中间的扰流板的问题。 实例:您只需要 ^!.* 见 ^匹配行的开头(在Ruby中),将匹配文本和*将匹配除换行符以外的零个或多个字符(如果您使用的是Ruby,我从您使用rubular网站的情况中假设是这样) 如果您使用的是Ruby以外的正则表达式风格,如JS、PHP或.NET,则需要指定/m-MULTILINE-修饰符(例如Jav

我正在尝试匹配从
开始的整行文本
用正则表达式

我制作了这样的东西:
/(!\w+\s+\s+)/ig
,非常接近,但只有两个单词。我想把单词和新行匹配起来。我也看到在句子中间的扰流板的问题。 实例:

您只需要

^!.*

^
匹配行的开头(在Ruby中),
将匹配文本
*
将匹配除换行符以外的零个或多个字符(如果您使用的是Ruby,我从您使用rubular网站的情况中假设是这样)


如果您使用的是Ruby以外的正则表达式风格,如JS、PHP或.NET,则需要指定
/m
-MULTILINE-修饰符(例如JavaScript中的
/^.*/gm
)。

如果要将所有内容与行的末尾匹配:

/(!.+)/
如果您想确保它遵循格式
!word---

/!\w.+/

如果要为

添加异常,应使用正向前瞻运算符。还请注意,使用正则表达式解析HTML文档通常不是一件好事

我认为你也应该考虑<代码> BR/> < /代码>。因此,最终注册ex将是:

^!.+?(?=\<br\>|\<br\s*\/\>|$)
^?(?=\|\|$)
它将匹配以下示例的突出显示部分:

!扰流板样本
无扰流器
!扰流板
!带更多单词的扰流板
!扰流板至新的
线路

扰流板在空中!句子中间部分


示例:

您可以使用带有
全局
标志的
+
正则表达式来匹配单独的整行。下面是一个例子:

您也可以使用

^![^\n]*
说明:

^
-字符串的开头

-匹配
字面意思

[^\n]*
-匹配除换行符以外的零个或多个字符


另一个解决方案是

^!\b.*$
在哪里

^
行的开头

匹配开始

\b.*$
行的其余部分

像魔咒一样工作:),但有一件事-需要添加异常:
^!。[^