我的网址如下所示:
http://example.com/php?id=2/*
http://example.com/php?id=2'
http://example.com/php?id=2*/"
我需要做的是抓住字符串的最后一个字符,我试过了:
for urls in html_page:
syntax = list(url)[-1]
# <= *
# <= '
# etc...
然而,这只会抓取字符串的最后一个字符,有没有一种方法可以抓住最后一个字符,只要它们是特殊字符?
答案 0 :(得分:4)
使用正则表达式。假设“特殊字符”表示“import java.io.IOException;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Reducer;
public class alicanteReducerC extends
Reducer<Text, IntWritable, Text, IntWritable> {
IntWritable maximum = new IntWritable();
public void reduce(Text key, Iterable<IntWritable> values, Context context)
throws IOException, InterruptedException {
int max = 0;
for (IntWritable val : values) {
if (val.get() > max) {
max = val.get();
}
}
for (IntWritable val : values) {
if (val.get() == max) {
context.write(key, val);
}
}
}
}
以外的任何内容”:
A-Za-z0-9
>>> import re
>>> re.search(r"\W+$", "http://example.com/php?id=2*/'").group()
"*/'"
匹配一个或多个“非单词”字符,\W+
将搜索锚定到字符串的末尾。
答案 1 :(得分:2)
使用正则表达式?
import re
addr = "http://example.com/php?id=2*/"
chars = re.search(addr, "[\*\./_]{0,4}$").group()
您要匹配的字符是[]
括号之间的字符。您可能希望根据预期遇到的内容添加或删除字符。
例如,您(可能)不希望匹配示例网址中的'='
字符,而另一个答案将与之匹配。
{0,4}
表示匹配0-4个字符(默认为贪婪)