我有一个textarea,有很多行,看起来像:
#1=stuff
#2=more stuff
...
#123=even more stuff
...
Run Code Online (Sandbox Code Playgroud)
我正在使用正则表达式找到#num = pattern(/ ^#[0-9]*= /),我想让它们像锚标签一样
<a href='#123='>#123=</a>
Run Code Online (Sandbox Code Playgroud)
但它不会像我想象的那样起作用.
"#2=".replace(/^#[0-9]*=/,"<a href='$1'>$1</a>")
Run Code Online (Sandbox Code Playgroud)
结果:
<a href='$1'>$1</a>
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
我试图匹配哈希标签并用锚标签包装它们.这是POC:
<p class="display"></p>
Run Code Online (Sandbox Code Playgroud)
var content = "I like #redApple. I have a #black hat. #red is my favorite color";
var re = /(#[a-z0-9][a-z0-9\-_]*)/ig,
match, matches = [];
while (match = re.exec(content)) {
matches.push(match[1]);
}
for (i = 0; i < matches.length; i++) {
value = matches[i];
console.log(value + ".....value");
vSearch = value.replace(/[-\/\\^$*+?.=()|[\]{}]/g, '\\$&');
console.log(vSearch + ".......vSearch");
regExSearch = new RegExp(vSearch, 'g');
console.log(regExSearch + "........regExSearch");
content = content.replace(regExSearch, '<a href="#">' + value + '</a> ');
}
$(".display").append(content);
Run Code Online (Sandbox Code Playgroud)
a {
color: red; …Run Code Online (Sandbox Code Playgroud) 我正在进行测试以查找并替换一个由3或4个大写字母组成的字符串,后跟一个带有相同字符串,连字符和相同数字的数字.在Perl中,我可以使用:
s/([A-Z]{3,4})([0-9])/$1-$2/g;
Run Code Online (Sandbox Code Playgroud)
我在Java中试过这个,硬编码如下字符串:
public class Test {
public static void main(String[] args) {
String test = "TEST1";
Pattern p = Pattern.compile("([A-Z]{3,4})([0-9])");
Matcher m = p.matcher(test);
if (m.find()) {
m.replaceAll(m.group(1) + "-" + m.group(2));
}
System.out.println(test);
}
}
Run Code Online (Sandbox Code Playgroud)
但没有找到匹配.我的Java语法是错误的还是正则表达式问题?
考虑M,T,W,TH,F,S,SU是星期几.
我有正则表达式这是除了一个场景运作良好时,有没有平日的序列,即不存在M, T,W,TH,F,S,SU在字符串中预期的位置.
例如,q10MT有效但q10HT无效.
以下是我的表达:
string expression = "q(\\d*)(M)?(T(?!H))?(W)?(TH)?(F)?(S(?!U))?(SU)?";
Run Code Online (Sandbox Code Playgroud)
如果是q10MT,输出是q10MT正确的,但是如果q10HT输出q10不正确,我的正则表达式应该在没有匹配时不返回值或空字符串.
为实现这一目标,我需要做出哪些改变?
我想只用后缀来分割字符串.例如,我希望能够拆分dord word为[dor,wor].
我虽然\wd会搜索以此结尾的单词d.然而,这不会产生预期的结果
import re
re.split(r'\wd',"dord word")
['do', ' wo', '']
Run Code Online (Sandbox Code Playgroud)
我怎么能用后缀分割?
我在捕获句子中的特定字符串时遇到一些麻烦。
我使用的正则表达式是\b[0-9]{9,12}\b捕获 9 到 12 位数字的数字。我用它来指定确切的数字的边界,但问题是,当我有一个与此正则表达式匹配的数字后跟一个点时,例如,正则表达式仍然匹配并给我带来很多麻烦。
正如我搜索的那样,问题是也\b使用一些特殊字符作为分隔符,对吗?那么有没有办法考虑,例如123456789.整个字符串和正则表达式将与该示例不匹配?
谢谢 !
从这个字符串
s = 'stringalading-0.26.0-1'
Run Code Online (Sandbox Code Playgroud)
我想提取该部分0.26.0-1。我可以想出各种方法来实现这一点,使用 split 或使用像这样的模式的正则表达式
pattern = r'\d+\.\d+\.\d+\-\d+'
Run Code Online (Sandbox Code Playgroud)
我还尝试使用一组字符,如下所示:
pattern = r'[.\-\d]+'
Run Code Online (Sandbox Code Playgroud)
这给了我:
In [30]: re.findall(pattern, s)
Out[30]: ['-0.26.0-1']
Run Code Online (Sandbox Code Playgroud)
所以我想知道:是否可以跳过组中字符的第一次出现,在本例中是第一次出现-?
我知道我可以用 POSIX 括号表达式搜索与空格匹配的内容[[:space:]]。我可以使用 POSIX 括号表达式搜索与空格不匹配的内容吗?特别是,它应该匹配的字符包括字母和括号 ( ()。
[[:graph:]] 看起来有点含糊:
[[:graph:]]- 非空白字符(不包括空格、控制字符和类似字符)
我有以下正则表达式:
[^0-9+-]|(?<=.)[+-]
Run Code Online (Sandbox Code Playgroud)
这个正则表达式匹配一个非数字并且不是+和/-或前面有一些东西。但是,JavaScript 正则表达式不支持正向后视。我怎样才能让它工作?+-
我正在尝试编写正则表达式Java来评估两个用()分隔的字符串,
Example: (test1,test2)
Run Code Online (Sandbox Code Playgroud)
我写了下面的代码
public static void main(String[] a){
String pattern = "\\([a-zA-Z0-9]+,[a-zA-Z0-9]+.\\)";
String test = "(test1,test2)";
System.out.println(test.matches(pattern));
}
Run Code Online (Sandbox Code Playgroud)
它按预期工作,并true在下面的情况下打印
String test = "(test1,test2)";
String test = "(t,test2)";
Run Code Online (Sandbox Code Playgroud)
但是false当我发送到下面时它正在打印
String test = "(test1,t)";
Run Code Online (Sandbox Code Playgroud)
这很奇怪,因为我之前和之后都使用相同的表达方式,
它返回true了(t,test2),但不(test1,t)
请告诉我这个正则表达式中缺少的内容.我需要它来计算并返回true的(test1,t)