相关疑难解决方法(0)

正则表达式前瞻,后观和原子团体

我在我的正则表达式身体中发现了这些东西,但我不知道我能用它们做什么.有人有例子,所以我可以尝试了解它们是如何工作的吗?

(?!) - negative lookahead
(?=) - positive lookahead
(?<=) - positive lookbehind
(?<!) - negative lookbehind

(?>) - atomic group
Run Code Online (Sandbox Code Playgroud)

regex lookaround

314
推荐指数
2
解决办法
16万
查看次数

Javascript将PascalCase转换为underscore_case

如何将PascalCase字符串转换为underscore_case字符串?我也需要将点转换为下划线.

例如.兑换

TypeOfData.AlphaBeta
Run Code Online (Sandbox Code Playgroud)

type_of_data_alpha_beta
Run Code Online (Sandbox Code Playgroud)

javascript string case-conversion

64
推荐指数
5
解决办法
4万
查看次数

如何在Python中简化从下划线到camelcase的转换?

我编写了下面的函数,将下划线转换为camelcase,第一个单词为小写,即"get_this_value" - >"getThisValue".此外,我还要求保留前导和尾随下划线以及双重(三重等)下划线,如果有的话,即

"_get__this_value_" -> "_get_ThisValue_".
Run Code Online (Sandbox Code Playgroud)

代码:

def underscore_to_camelcase(value):
    output = ""
    first_word_passed = False
    for word in value.split("_"):
        if not word:
            output += "_"
            continue
        if first_word_passed:
            output += word.capitalize()
        else:
            output += word.lower()
        first_word_passed = True
    return output
Run Code Online (Sandbox Code Playgroud)

我感觉上面的代码是用非Pythonic风格编写的,虽然它按预期工作,所以看看如何简化代码并使用列表推导等编写代码.

python

31
推荐指数
4
解决办法
3万
查看次数

Python递归替换嵌套字典的键中的字符?

我正在尝试创建一个泛型函数来替换嵌套字典的键中的点.我有一个非泛型函数,深入3级,但必须有一种方法来做这个泛型.任何帮助表示赞赏!我的代码到目前为止:

output = {'key1': {'key2': 'value2', 'key3': {'key4 with a .': 'value4', 'key5 with a .': 'value5'}}} 

def print_dict(d):
    new = {}
    for key,value in d.items():
        new[key.replace(".", "-")] = {}
        if isinstance(value, dict):
            for key2, value2 in value.items():
                new[key][key2] = {}
                if isinstance(value2, dict):
                    for key3, value3 in value2.items():
                        new[key][key2][key3.replace(".", "-")] = value3
                else:
                    new[key][key2.replace(".", "-")] = value2
        else:
            new[key] = value
    return new

print print_dict(output)
Run Code Online (Sandbox Code Playgroud)

更新:回答我自己的问题,我使用json object_hooks做了一个解决方案:

import json

def remove_dots(obj):
    for key in obj.keys():
        new_key = key.replace(".","-")
        if …
Run Code Online (Sandbox Code Playgroud)

python dictionary replace nested character

25
推荐指数
4
解决办法
2万
查看次数

优雅的R功能:由句点分隔的混合表壳,以下划线分开的小写和/或驼色表壳

我经常从协作者处获得数据集,这些数据集在数据集中具有不一致的变量/列命名.我的首要任务之一是重命名它们,我想在R内部完全解决这个问题.

as.Given <- c("ICUDays","SexCode","MAX_of_MLD","Age.Group")

underscore_lowercase <- c("icu_days", "sex_code", "max_of_mld","age_group")

camelCase <- c("icuDays", "sexCode", "maxOfMld", "ageGroup")
Run Code Online (Sandbox Code Playgroud)

鉴于有关命名约定不同的意见,并本着什么Python中提出,有哪些途径,从去as.Givenunderscore_lowercase和/或camelCase作为R用户指定的方式吗?

编辑: 还在R/regex中找到了这个相关的帖子,特别是@rengis的答案.

regex r

18
推荐指数
2
解决办法
953
查看次数

如何用下划线替换大写?

我是Python的新手,我试图将单词中的所有大写字母替换为下划线,例如:

ThisIsAGoodExample
Run Code Online (Sandbox Code Playgroud)

应该成为

this_is_a_good_example
Run Code Online (Sandbox Code Playgroud)

关于如何实现这一目标的任何想法/提示/链接/教程?

python regex string replace uppercase

9
推荐指数
4
解决办法
9104
查看次数

Python:更改大写字母

我无法弄清楚如何在python中替换字符串中的第二个大写字母.

例如:

string = "YannickMorin" 
Run Code Online (Sandbox Code Playgroud)

我希望它成为yannick-morin

到目前为止,我可以通过执行string.lower()来使它全部小写,但是当它找到第二个大写字母时如何设置破折号.

python camelcasing

4
推荐指数
1
解决办法
231
查看次数

Golang regexp.ReplaceAllString 忽略替换字符串“$X_”

我正在尝试使用我在此处找到的正则表达式将 CamelCase 转换为 Snake_case 。这是我正在使用的代码片段:

in := "camelCase"
var re1 = regexp.MustCompile(`(.)([A-Z][a-z]+)`)
out := re1.ReplaceAllString(in, "$1_$2")
Run Code Online (Sandbox Code Playgroud)

正则表达式将匹配lCase. $1这里 isl$2is Case,所以使用替换字符串"$1_$2"应该会导致camel_Case. 相反,它会导致cameCase.

将替换字符串更改为"$1_"结果came。如果我将其更改为"$1+$2",结果将camel+Case如预期(请参阅游乐场)。

现在,我的解决方法是用作"$1+$2"替换字符串,然后使用strings.Replace将加号更改为下划线。这是一个错误还是我在这里做错了什么?

go

3
推荐指数
1
解决办法
676
查看次数

在Python中将not_camel_case转换为notCamelCase和/或NotCamelCase?

基本上,相反.这是我的尝试,但它不起作用.

def titlecase(value):
    s1 = re.sub('(_)([a-z][A-Z][0-9]+)', r'\2'.upper(), value)
    return s1
Run Code Online (Sandbox Code Playgroud)

python

1
推荐指数
1
解决办法
195
查看次数

python函数将驼峰案例转换为蛇案例

我设法使用正则表达式拼凑一个python函数将驼峰转换为蛇案例,它适用于我的所有测试用例,但我还有几个问题.

1)三个陈述中的每一个实际上做了什么?

import re

test_cases = list()
test_cases.append('camelCase')
test_cases.append('camelCaseCase')
test_cases.append('camel2Case')
test_cases.append('camel12Case')
test_cases.append('camel12Case')
test_cases.append('camelCaseURL')
test_cases.append('camel2CaseURL')
test_cases.append('camel12CaseURL')
test_cases.append('camel12Case2URL')
test_cases.append('camel12Case12URL')
test_cases.append('CamelCase')
test_cases.append('CamelCaseCase')
test_cases.append('URLCamelCase')


def camel_to_snake(string):
    string = re.sub('(.)([A-Z][a-z]+)', r'\1_\2', string)
    string = re.sub('(.)([0-9]+)', r'\1_\2', string)
    return re.sub('([a-z0-9])([A-Z])', r'\1_\2', string).lower()


for string in test_cases:
    print(string + ' -> ' + camel_to_snake(string))
Run Code Online (Sandbox Code Playgroud)

结果如下:

camelCase -> camel_case
camelCaseCase -> camel_case_case
camel2Case -> camel_2_case
camel12Case -> camel_12_case
camel12Case -> camel_12_case
camelCaseURL -> camel_case_url
camel2CaseURL -> camel_2_case_url
camel12CaseURL -> camel_12_case_url
camel12Case2URL -> camel_12_case_2_url
camel12Case12URL -> camel_12_case_12_url
CamelCase -> …
Run Code Online (Sandbox Code Playgroud)

python regex

1
推荐指数
1
解决办法
5940
查看次数

SQLAlchemy 问题 - Marshmallow 嵌套对象推断外键

我试图让 Marshmallow-SQLAlchemy 反序列化具有嵌套对象的对象,而不指定嵌套对象的外键(应该是父对象的主键)。这是一个独立的示例:

# Python version == 3.8.2
from datetime import datetime
import re

# SQLAlchemy == 1.3.23
from sqlalchemy import func, create_engine, Column, ForeignKey, Text, DateTime
from sqlalchemy.ext.declarative import as_declarative, declared_attr
from sqlalchemy.orm import relationship, sessionmaker

# marshmallow==3.10.0
# marshmallow-sqlalchemy==0.24.2
from marshmallow import fields
from marshmallow.fields import Nested
from marshmallow_sqlalchemy import SQLAlchemyAutoSchema

################################################################################
# Set up
################################################################################

engine = create_engine("sqlite:///test.db")

Session = sessionmaker()
Session.configure(bind=engine)
session = Session()


################################################################################
# Models
################################################################################

@as_declarative()
class Base(object):

    @declared_attr
    def __tablename__(cls):
        # From …
Run Code Online (Sandbox Code Playgroud)

python sqlalchemy marshmallow marshmallow-sqlalchemy

1
推荐指数
1
解决办法
1947
查看次数

与正则表达式代码作斗争:CamelCase to camel_case

我能够将字符串转换MyClassNamemy_class_name使用正则表达式

但是我的解决方案不起作用MyOtherTClassName,应该转换为my_other_t_class_name.

另外,这也不起作用ClassNumber1,应该将其转换为class_number_1

没有进入我的解决方案,这还不够好,我想帮助转换正则表达式代码:

  1. MyClassName -> my_class_name
  2. MyOtherTClassName -> my_other_t_class_name
  3. MyClassWith1Number -> my_class_with_1_number

谢谢,

盖伊

c# regex

0
推荐指数
1
解决办法
559
查看次数