Regex: Как удалить пробелы после строки - PullRequest
0 голосов
/ 28 сентября 2019

Я сейчас сканирую веб-сайт.Одна из точек выходных данных:

"Kickoff Date": ["08 Nov 2018, 17:55                            "]

Я использую следующее выражение регулярного выражения для получения точки данных, упомянутой выше:

re('([^/]+$)')

Как мне изменитьэто удалить пробелы после числа (17:55)?

Ответы [ 8 ]

0 голосов
/ 29 сентября 2019

Добавить границу слова (\ b)

[^/]+\b

Это будет соответствовать до последнего символа слова

0 голосов
/ 28 сентября 2019

Это удалит все пробелы перед двойной кавычкой:

str = '"Kickoff Date": ["08 Nov 2018, 17:55                            "]'
res = re.sub(r'\s+"', '"', str)
print(res)

Вывод:

"Kickoff Date": ["08 Nov 2018, 17:55"]
0 голосов
/ 28 сентября 2019

Остановиться на последнем непробельном символе вместо перехода до конца, как это

re('([^/]+\S)')
0 голосов
/ 28 сентября 2019

Попробуйте этот код:

var regex1 = /(.*?\d+\s+.*\d+)/gmi;
var str1 = `"Kickoff Date": ["08 Nov 2018, 17:55                            "]`;
var m1;

while ((m = regex1.exec(str1)) !== null) {
    // This is necessary to avoid infinite loops with zero-width matches
    if (m.index === regex1.lastIndex) {
        regex1.lastIndex++;
    }
    console.log(m[1]);
}



//Get that part: 8 Nov 2018, 17:55

const regex = /(.*?(\d+\s+.*\d+))/gmi;
const str =
`"Kickoff Date": ["08 Nov 2018, 17:55                       "]`;
let m2;

while ((m2 = regex.exec(str)) !== null) {
    // This is necessary to avoid infinite loops with zero-width matches
    if (m2.index === regex.lastIndex) {
        regex.lastIndex++;    document.write(m[1]);
    }
       console.log(m2[2]); //8 Nov 2018, 17:55
}

// Python

# coding=utf8
# the above tag defines encoding for this document and is for Python 2.x compatibility

import re

regex = r"(.*?(\d+\s+.*\d+))"

test_str = "\"Kickoff Date\": [\"08 Nov 2018, 17:55                            \"]"

matches = re.finditer(regex, test_str, re.MULTILINE | re.IGNORECASE)

for matchNum, match in enumerate(matches, start=1):

    print ("Match {matchNum} was found at {start}-{end}: {match}".format(matchNum = matchNum, start = match.start(), end = match.end(), match = match.group()))

    for groupNum in range(0, len(match.groups())):
        groupNum = groupNum + 1

        print ("Group {groupNum} found at {start}-{end}: {group}".format(groupNum = groupNum, start = match.start(groupNum), end = match.end(groupNum), group = match.group(groupNum)))
0 голосов
/ 28 сентября 2019

Используя регулярное выражение, вы можете использовать выражение ^\s+|\s+$

import re
string = "08 Nov 2018, 17:55                            "
re.sub(r'^\s+|\s+$', '', string)
# '08 Nov 2018, 17:55'

Это удаляет и начальные и конечные пробелы.

0 голосов
/ 28 сентября 2019

Вы можете использовать функцию re.sub() и заменить на более чем 1 пробел пустым.Это должно сделать:

import re
a = '"Kickoff Date": ["08 Nov 2018, 17:55                            "]'
a = re.sub(r'\s{2,}','',a)
0 голосов
/ 28 сентября 2019

Это регулярное выражение для поиска пустого пространства в конце строки.

\s+$
0 голосов
/ 28 сентября 2019

Используйте string.rsplit().Удаляет все пробелы в конце строки.

...