正如标题所示,我正在尝试使用javascript正则表达式从字符串中检索域.
请使用以下字符串:
String ==> Return
"google" ==> null
"google.com" ==> "google.com"
"www.google.com" ==> "www.google.com"
"ftp://ftp.google.com" ==> "ftp.google.com"
"http://www.google.com" ==> "www.google.com"
"http://www.google.com/" ==> "www.google.com"
"https://www.google.com/" ==> "www.google.com"
"https://www.google.com.sg/" ==> "www.google.com.sg"
"https://www.google.com.sg/search/" ==> "www.google.com.sg"
"*://www.google.com.sg/search/" ==> "www.google.com.sg"
Run Code Online (Sandbox Code Playgroud)
我已经读过 "Regex找到没有www的域名 - Stack Overflow"和"从字符串中提取根域名 - Stack Overflow" 但它们太复杂了,所以我尝试编写自己的正则表达式:
var re = new RegExp("[\\w]+[\\.\\w]+");
/[\w]+[\.\w]+/
re.exec(document.URL);
Run Code Online (Sandbox Code Playgroud)
它工作正常"google.com","www.google.com"并"www.google.com.sg"而是返回http用"http://google.com/","http://www.google.com/"等
由于我是正则表达的新手,我似乎无法弄清楚出了什么问题......任何想法?
提前致谢!
我有以下正则表达式:
(?i)p\w+@t(-)?\w+(-\w+)?(\.\w+)?\.at匹配数据,如
papFoo@t-bar.at
PapBar@tfoo.ring.at
Run Code Online (Sandbox Code Playgroud)
如何重写此正则表达式以使用非捕获组?
[?i]p\w+@t[-]?\w+[-\w+]?[\.\w+]?\.at 将不再匹配任何结果(?:?i)p\w+@t(?:-)?\w+(?:-\w+)?(?:\.\w+)?\.at 同样在这里即我(?i)p应该可写,?ip但在https://regex101.com上我尝试使用(?:?i)p\w+@t(?:-)?\w+(?:-\w+)?(?:\.\w+)?\.at非捕获组时只会出错.
最后python3应该评估正则表达式.
我需要一个正则表达式来删除字符串中的所有(and ,除了两个 @ 之间的那些。)
例子:
( [15] == @value 1@ || [15] == @value 2@ ) && ( [5] == @value 3 (ignore these)@ || [5] == @value 4@ ) || ( [2] == @value 5@ )
Run Code Online (Sandbox Code Playgroud)
我需要的字符串:
[15] == @value 1@ || [15] == @value 2@ && [5] == @value 3 (ignore these)@ || [5] == @value 4@ || [2] == @value 5@
Run Code Online (Sandbox Code Playgroud)
我尝试用这个非捕获组来用空格分割,除了 @ 之间的空格,但找不到方法:
(?:@[^@]*@|\S)
Run Code Online (Sandbox Code Playgroud)
我面临着解决这个问题的压力,非常感谢您的帮助,谢谢。
我正在尝试将category_id 用作纯数值,这有效。我还需要捕获category_name。对于category_name,我需要捕获直到空格或包含空格(如果它以双引号开头)。
用户输入字符串示例:
python c:192 c:1Stackoverflow c:"Stack Overflow2"
Run Code Online (Sandbox Code Playgroud)
所需的捕获应该是category_name 的这两个值和category_id 的192 值。
预期输出:
1Stackoverflow
Stack Overflow2
Run Code Online (Sandbox Code Playgroud)
Category_name 必须至少包含一位非数字,但可以是全字母且不含数字。
此查询部分有效:
python c:192 c:1Stackoverflow c:"Stack Overflow2"
Run Code Online (Sandbox Code Playgroud)
它不捕获输入1Stackoverflow,但捕获引用的输入。我需要删除引号:
1Stackoverflow
Stack Overflow2
Run Code Online (Sandbox Code Playgroud)
这?!\d+是一种避免与category_id发生冲突的尝试,但似乎不起作用。
如何以两种形式(一个单词和引号分隔)捕获category_name,而不在捕获中使用引号并使用前导数字?
有这样的事情吗?我一直在查看 Vala API 并且 Regex 对象似乎不支持捕获组,以便我以后可以引用它们。目前有没有办法绕过这个明显的限制?假设我正在从一组字符串(文件的内容)中解析一个字符串,以获得给定的模式,例如:
参数 = 值
但我希望语法宽松,这样它也可以说
参数=值或者
参数 = 值等等...我想到的第一个想法是使用带有捕获组的正则表达式,但据我所知,目前似乎不支持将此功能作为 Vala 的一部分。
我能想出的唯一替代方法是使用匹配空格的正则表达式拆分字符串,以便我最终得到一个可以分析的数组,但该文件可能不仅包含类似“参数 = 值”的格式行。
我想在Python中使用正则表达式来获取</html>标记之后的所有内容,并将其放在字符串中.所以我试着理解如何在Python中实现它,但我无法使其工作.谁能解释我怎么做这个荒谬的简单任务?
一如既往,我是世界上最差的正则表达者.但这次我真的尝试过.
所以我的目标是制作一个处理搜索相关内容的正则表达式.搜索查询可能是这样的:
但它应该能够分别检测它们.它应该能够检测直接匹配的引用.只有标题,必须在它后面有搜索查询,但其他条件可以是任何顺序.
现在我很困难..我设法做了这个正则表达式.它仅适用于状态:封闭类型:图像标题:堆栈溢出.()thingis 之间的点使它工作.如果我用|替换它,那么我得到第一部分匹配.但是,对于我而言,使用所有可能的查询格式来实现此功能是不可行的.
/(?:(?:status[:](closed|open)).(?:type[:](image|video)).(?:(?:title|author|actor|movie)[:](.+)))/i
Run Code Online (Sandbox Code Playgroud)
下面是工具,我试图做这一切:http://regexr.com/39an1我的涂鸦就在那里了.
这是针对搜索引擎类型的东西.所以我希望从匹配中获得结果,在PHP中很容易使用.此外,我认为有人可以从中受益,它会有一个解决方案.
如果有人能指出我的话,至少点对点 主要的()东西之间.感觉就像| =或者,但我想要有点像和/或东西.
我试图将我的正则表达式匹配的命名组分配给局部变量。例如,我试图捕获日期输入的字符串并引用命名组month和day局部变量:
input = "2015-01-24"
expr = /\d{4}-(?<month>\d{2})-(?<day>\d{2})/
input =~ expr #=> 0
Run Code Online (Sandbox Code Playgroud)
但是,month或者day是匹配后未定义的变量。我如何访问month和day作为局部变量?
根据Ruby doc,输入组变量名称将返回捕获的值(在本例中为“美元”)
/\$(?<dollars>\d+)\.(?<cents>\d+)/ =~ "$3.67" #=> 0
dollars #=> "3"
Run Code Online (Sandbox Code Playgroud)
我也很感激任何推荐的资源。
我有一个像这样的变量
var = "!123abcabc123!"
Run Code Online (Sandbox Code Playgroud)
我试图捕获此变量中的所有'123'和'abc'.
这个正则表达式(abc|123)检索我想要的但是......
我的问题是:当我尝试这个正则表达式时,!(abc|123)*!它只检索最后一次迭代.我该怎么做才能得到这个输出
MATCH 1
1. [1-4] `123`
MATCH 2
1. [4-7] `abc`
MATCH 3
1. [7-10] `abc`
MATCH 4
1. [10-13] `123`
Run Code Online (Sandbox Code Playgroud)
https://regex101.com/r/mD4vM8/3
谢谢!!
在 Perl (v5.30.0) 中,正则表达式被评估为捕获,当用作参数时print():
# Simplified example; the real case has more text, and the capture covers only part of it.
echo $'1\n2\n3' | perl -ne 'print /(.)/'
# 123
Run Code Online (Sandbox Code Playgroud)
这对于文本提取非常有用。我想利用算术运算的相同便利,但这并不能按预期工作:
# Attempt to compute a sum of the int value of the captures
#
echo $'1\n2\n3' | perl -ne '$tot += /(.)/; END { print $tot }'
# 3
# Attempt to print twice the int value of each capture
#
echo $'1\n2\n3' | perl -ne 'print(/(.)/ …Run Code Online (Sandbox Code Playgroud) capturing-group ×10
regex ×10
javascript ×3
python ×2
string ×2
perl ×1
php ×1
ruby ×1
vala ×1