我正在做一些字符串解析并想使用正则表达式。我正在迭代字符串,并希望使用正则表达式和偏移量应用诸如“startsWith”之类的内容,如果找到则返回匹配项,否则返回 null。在伪 JavaScript 中:
function startsWith(string, regex, offset) {
if (regex_matches_at_offset) {
return match;
} else {
return null;
}
}
Run Code Online (Sandbox Code Playgroud)
一个简单直接的解决方案是先应用子字符串,然后匹配。但我想要使用正则表达式的“startsWith”之类的东西。
如果它是一个字符串而不是正则表达式,我会选择startsWith
function startsWith(string, other_string, offset) {
let starts_with=s.startsWith(other_string, offset); // startsWith from position offset onwards, as other_string has fixed length the "match" is also known
if (starts_with) {
return other_string; // other_string = match
} else {
return null;
}
}
Run Code Online (Sandbox Code Playgroud)
但对于正则表达式,我当前的解决方案(仅用于测试目的)如下所示:
function startsWith(string, regex, offset) {
let end_part=s.substring(offset); // Substring, performance issue
let match=end_part.match(regex); // Match …Run Code Online (Sandbox Code Playgroud) 考虑到,我有一个像这样的数组[...,n-2,n-1,n,n + 1,n + 2,...]。我想以[n,n + 1,n-1,n + 2,n-2,...]的方式对它进行排序,其中n等于数组的中间位置。
例如:
输入:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Run Code Online (Sandbox Code Playgroud)
输出:
[5, 6, 4, 7, 3, 8, 2, 9, 1, 0]
Run Code Online (Sandbox Code Playgroud)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Run Code Online (Sandbox Code Playgroud)
我所做的工作正常,但是我想知道是否有更好的方法或更有效的方法?
试图制作一个非常简单的HTML缩小器,仅消除标记之间的空白吗?
我认为最好的方法是使用JavaScript正则表达式?但永远无法找出正确的方法。
<p>leave white spaces</p> <p>leave white spaces</p>
Run Code Online (Sandbox Code Playgroud)
缩小后:
<p>leave white space</p><p>leave white space</p>
Run Code Online (Sandbox Code Playgroud)
试图瞄准>这里的空间<
我有包含yaml文件的下一个目录路径:
test/1.yaml
test/dev.yaml
test/dev0_r.yaml
Run Code Online (Sandbox Code Playgroud)
等等
如何匹配完全在test /目录中但不在子目录(如test / test1 / dev.yaml)中的所有Yaml文件
我正在尝试使用globing:
test/*.yaml
Run Code Online (Sandbox Code Playgroud)
但在https://regex101.com/上不起作用
我该如何实现?
我有一个来自CSV文件的字符串:
my $str = 'NA19900,4,111629038,0;0,0;0,"GSA-rs16997168,rs16997168,rs2w34r23424",C,T,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0';
Run Code Online (Sandbox Code Playgroud)
应该翻译(以某种方式)为
'NA19900,4,111629038,0;0,0;0,"GSA-rs16997168;rs16997168;rs2w34r23424",C,T,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0';
Run Code Online (Sandbox Code Playgroud)
这样perl split不会将单个字段GSA-rs16997168,rs16997168分成两个单独的字段
也就是说,如果逗号介于两者之间,则应将逗号替换为分号,但"我在Google上找不到该方法
到目前为止,我已经尝试过:
$str =~ s/"([^"]+),([^"]+)"/"$1;$2"/g; 但这失败了> 2个表达式
如果我能以某种方式告诉perl split函数将""一个字段中的所有内容都计为一个字段,那将是很棒的,即使该文本具有,分隔符,但我也不知道该怎么做:(
我听说过前瞻,但是在这里我看不到如何使用它们:(
我正在尝试在桌面中创建一个文件夹(使用 DirectoryInfo) - 我需要获取桌面路径
我尝试过使用:
DirectoryInfo(Environment.GetFolderPath(Environment.SpecialFolder.Desktop)
Run Code Online (Sandbox Code Playgroud)
但它不断让我进入用户的文件夹(桌面、音乐、视频文件夹所在的位置)。
DirectoryInfo dir = new DirectoryInfo(Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + "Folder111" );
dir.Create();
Run Code Online (Sandbox Code Playgroud) 我有以下正则表达式字符串:
(.*?)(?=(\(\d+\))).*(\.png|\.jpg)
Run Code Online (Sandbox Code Playgroud)
它正确匹配以下字符串并在第 1 组中存储一些东西,第 2 组中的 (123) 和第 3 组中的 .extension
something something something (123).png
something something something (123).jpg
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试匹配下一个字符串时,我无法弄清楚如何让中间部分成为可选的,以便以下是有效匹配:
something something something.png
something something something.jpg
Run Code Online (Sandbox Code Playgroud)
我需要第一组来存储:
something something something
Run Code Online (Sandbox Code Playgroud)
要存储的第二组:
(123)
Run Code Online (Sandbox Code Playgroud)
这可以是任意长度的任意数量
第三组要存储:
.extension
Run Code Online (Sandbox Code Playgroud)
这可以是 .jpg 或 .png
更新
数据是从互联网上抓取的单个字符串,例如:
something something something (123).png
something something something (123).jpg
Run Code Online (Sandbox Code Playgroud)
例子
Dave (Fancy Dave) found at home (1234).png
Dave (Fancy Dave) found at pub.png
Dave found at work (1234).png
Dave found at bus stop.png
Dave (Fancy Dave) (1234).gif
Dave (Fancy …Run Code Online (Sandbox Code Playgroud) 我一直在使用sklearn.ensemble.IsolationForest隔离林的 scikit learn 实现来检测数据集中的异常情况,数据范围从数百行到数百万行数据。它似乎运行良好,我已将其覆盖max_samples为一个非常大的整数来处理一些较大的数据集(本质上不使用子采样)。我注意到原始论文指出,较大的样本量会产生淹没和掩盖的风险。
如果隔离森林看起来工作正常,是否可以在大样本量上使用它?我尝试使用较小的训练max_samples,但测试产生了太多异常情况。我的数据确实开始增长,我想知道对于如此大的样本量,不同的异常检测算法是否会更好。
我得到一个数字 k,我必须从 [0;k] 中找到每个 (2k) 阶乘;例如 0, 2!, 4!, 6! 等。我尝试了一个解决方案,将值保存在地图中,并为每个第 k 个值使用第 (k-1) 个结果,如下所示:
private Map<Long, BigInteger> cache;
private FactorialCache(int k) {//
cache = new HashMap<>();
calculate(k);
System.out.println("last item " + k);
}
private void calculate(int k) {
BigInteger result = BigInteger.ONE;
cache.put(0l, result);
cache.put(1l, result);
for (long i = 2; i <= k; i += 1) {
BigInteger currentRes = cache.get(i - 1).multiply(BigInteger.valueOf(i));
cache.put(i, currentRes);
}
}
Run Code Online (Sandbox Code Playgroud)
但是,我很好奇是否有更快的方法来查找和保存这些特定阶乘?
我有一个包含以下内容的文本文件:
NAME REGION ADDRESS STATUS
instance-name europe-west1 1.2.3.4 IN_USE
instance-name-2 europe-west1 1.3.2.4 IN_USE
instance-name-3 europe-west1 1.5.3.2 IN_USE
Run Code Online (Sandbox Code Playgroud)
我只想从“ instance-name-3”中提取IP地址。在那种情况下怎么可能?
例如,这使我可以找到所有IP地址,但是我只想要“ instance-name-3”一个:
grep -E -o "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0
-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)" iplist.txt
Run Code Online (Sandbox Code Playgroud) regex ×5
javascript ×3
regex-group ×3
algorithm ×2
python ×2
string ×2
arrays ×1
bash ×1
c# ×1
csv ×1
dom ×1
grep ×1
java ×1
math ×1
optimization ×1
performance ×1
perl ×1
pivot ×1
regex-greedy ×1
sampling ×1
scikit-learn ×1
sorting ×1